﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.VisualBasic;
using System.Globalization;
using HREDU.Hoang_Tuan.Classes;
using HREDU;

using Microsoft.Office.Interop.Excel;
//using VBIDE_12 = Microsoft.Vbe.Interop;
using Office_12 = Microsoft.Office.Core;
using Excel_12 = Microsoft.Office.Interop.Excel;

namespace HREDU.Hoang_Tuan
{
    public partial class frmNHANSU : Form
    {
        #region "Paramaters"
        public Form fCallForm = null;
        public CNHANVIEN objNHANVIEN;
        public CLUONG objLUONG;
        //Luu tru don vi cong tac
        public CDONVI objDonVi;
        //Luu tru que quan, noi sinh
        public CDIADANH objDiaDanh;
        public System.Int16 idNoiSinh;
        public System.Int16 idQueQuan;
        #endregion

        /* 
         * Dungnv : 09/09/2009
         */
        public string strMode;

        public frmNHANSU()
        {
            InitializeComponent();
            InitForm();
            if (objNHANVIEN != null)
                FillFormNHANSU();
            else
                LoadDefaultNHANSUData(0);
        }

        public frmNHANSU(CDONVI objDV)
        {
            InitializeComponent();
            InitForm();
            objDonVi = objDV;
            txtDonVi.Text = objDonVi.TEN_DONVI;
            if (objNHANVIEN != null)
                FillFormNHANSU();
            else
                LoadDefaultNHANSUData(0);
        }


        public frmNHANSU(Form frm, int id_nhanvien, bool isInsert,string strMode)
        {
            /*
             * Dungnv  : 09/09/2008 
             */
            this.strMode = strMode;
            InitializeComponent();
            fCallForm = frm;
            objNHANVIEN = CNHANVIENCollection.LayNhanVienTheoID(id_nhanvien);
            InitForm();
            if (objNHANVIEN != null)
            {
                FillFormNHANSU();
                //Neu la Insert thi tao thong tin nhan su moi dua theo thong tin nhan su dang chon
                if (isInsert)
                    LoadDefaultNHANSUData(1);
            }
            else
                LoadDefaultNHANSUData(0);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="frm"></param>
        /// <param name="id_nhanvien"></param>
        /// <param name="isInsert"></param>
        /// isInsert = true cho biet la them moi dua theo thong tin nhan su dang chon
        /// isInsert = false la Update thong tin nhan su dang chon
        public frmNHANSU(Form frm, int id_nhanvien, bool isInsert)
        {
            InitializeComponent();
            fCallForm = frm;
            objNHANVIEN = CNHANVIENCollection.LayNhanVienTheoID(id_nhanvien);
            InitForm();
            if (objNHANVIEN != null)
            {
                FillFormNHANSU();
                //Neu la Insert thi tao thong tin nhan su moi dua theo thong tin nhan su dang chon
                if (isInsert)
                    LoadDefaultNHANSUData(1);
            }
            else
                LoadDefaultNHANSUData(0);
        }

        private void frmNHANSU_Load(object sender, EventArgs e)
        {
            //if (objNHANVIEN != null)
            //{
                InitDataGridJanusKhenThuong();
                InitDataGridJanusKyLuat();
                InitDataGridJanusQTDT();
                InitDataGridJanusQTCT();
                InitDataGridJanusQHGD(ref gridEXQHGD1);
                InitDataGridJanusQHGD(ref gridEXQHGD2);
            //}
        }

        private void LoadDanhMuc()
        {
            string strSQL;
            DataSet ds;

            //Giới tính
            cmbGioiTinh.Items.Add("Nam");
            cmbGioiTinh.Items.Add("Nữ");

            //Loại Nhân viên (Cán bộ quản lý, Giáo viên, Nhân viên)
            strSQL = "select * from LOAINV";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbLoaiNV.ValueMember = "ID_LOAINV";
            cmbLoaiNV.DisplayMember = "TEN_LOAINV";
            cmbLoaiNV.DataSource = ds.Tables[0].DefaultView;

            //Dân tộc
            strSQL = "select * from view_DanToc";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbDanToc.ValueMember = "ID";
            cmbDanToc.DisplayMember = "TEN";
            cmbDanToc.DataSource = ds.Tables[0].DefaultView;

            //Tôn Giáo
            strSQL = "select * from view_TonGiao";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbTonGiao.ValueMember = "ID";
            cmbTonGiao.DisplayMember = "TEN";
            cmbTonGiao.DataSource = ds.Tables[0].DefaultView;

            //Thành phần gia đình
            strSQL = "select * from view_ThanhPhanGiaDinh";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbThanhPhanGiaDinh.ValueMember = "ID";
            cmbThanhPhanGiaDinh.DisplayMember = "TEN";
            cmbThanhPhanGiaDinh.DataSource = ds.Tables[0].DefaultView;

            //Chức vụ Đảng
            strSQL = "select * from view_ChucVuDang where cuoi = 1";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbChucVuDang.ValueMember = "ID_DONVI";
            cmbChucVuDang.DisplayMember = "TEN_DONVI";
            cmbChucVuDang.DataSource = ds.Tables[0].DefaultView;

            //Chức vụ Chính quyền
            strSQL = "select * from view_ChucVuChinhQuyen where cuoi = 1";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbChucVuCQ.ValueMember = "ID_DONVI";
            cmbChucVuCQ.DisplayMember = "TEN_DONVI";
            cmbChucVuCQ.DataSource = ds.Tables[0].DefaultView;

            //Chức vụ Đoàn thể
            strSQL = "select * from view_ChucVuDoanThe where cuoi = 1";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbChucVuDT.ValueMember = "ID_DONVI";
            cmbChucVuDT.DisplayMember = "TEN_DONVI";
            cmbChucVuDT.DataSource = ds.Tables[0].DefaultView;

            //Hệ đào tạo
            strSQL = "select * from view_HeDaoTao";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbHeDaoTao.ValueMember = "ID";
            cmbHeDaoTao.DisplayMember = "TEN";
            cmbHeDaoTao.DataSource = ds.Tables[0].DefaultView;

            //Trình độ học vấn
            strSQL = "select * from view_HocVan";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbTDHocVan.ValueMember = "ID";
            cmbTDHocVan.DisplayMember = "TEN";
            cmbTDHocVan.DataSource = ds.Tables[0].DefaultView;

            //Trình độ chuyên môn
            strSQL = "select * from view_TrinhDoChuyenMon";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbTDChuyenMon.ValueMember = "ID";
            cmbTDChuyenMon.DisplayMember = "TEN";
            cmbTDChuyenMon.DataSource = ds.Tables[0].DefaultView;

            //Trình độ chính trị
            strSQL = "select * from view_TrinhDo";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbTDChinhTri.ValueMember = "ID";
            cmbTDChinhTri.DisplayMember = "TEN";
            cmbTDChinhTri.DataSource = ds.Tables[0].DefaultView;

            //Môn đào tạo
            strSQL = "select * from view_MonDaoTao";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbMonDaoTao.ValueMember = "ID";
            cmbMonDaoTao.DisplayMember = "TEN";
            cmbMonDaoTao.DataSource = ds.Tables[0].DefaultView;

            //Học hàm
            strSQL = "select * from view_HocHam";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbHocHam.ValueMember = "ID";
            cmbHocHam.DisplayMember = "TEN";
            cmbHocHam.DataSource = ds.Tables[0].DefaultView;

            //Tình trạng sức khỏe
            strSQL = "select * from view_SucKhoe";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbSucKhoe.ValueMember = "ID";
            cmbSucKhoe.DisplayMember = "TEN";
            cmbSucKhoe.DataSource = ds.Tables[0].DefaultView;

            //Thương binh loại
            strSQL = "select * from view_ThuongBinh";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbThuongBinh.ValueMember = "ID";
            cmbThuongBinh.DisplayMember = "TEN";
            cmbThuongBinh.DataSource = ds.Tables[0].DefaultView;

            //Nhóm máu
            strSQL = "select * from view_NhomMau";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbNhomMau.ValueMember = "ID";
            cmbNhomMau.DisplayMember = "TEN";
            cmbNhomMau.DataSource = ds.Tables[0].DefaultView;

            //Danh mục được phong
            strSQL = "select * from view_DanhHieuDuocPhong";
            ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            cmbDanhHieu.ValueMember = "ID";
            cmbDanhHieu.DisplayMember = "TEN";
            cmbDanhHieu.DataSource = ds.Tables[0].DefaultView;


        }
        public void InitForm()
        {
            LoadDanhMuc();
           
            ///*
            // * Dungnv : 09/09/2008 
            // */
            //if (strMode == "VIEW")
            //{
            //    //Khong cho nhap du lieu 
            //    foreach (Control ctr in this.tabControl1.TabPages[0].Controls  )
            //    {
            //        if (ctr.GetType() != typeof(Label))
            //        {
            //            ctr.Enabled = false;

            //        }

            //    }

            //    foreach (Control ctr in this.Controls[1].Controls)
            //    {
            //        if (ctr.GetType() != typeof(Label))
            //        {
            //            ctr.Enabled = false;

            //        }
            //        btnGhi.Visible = false;
            //        btnHuy.Visible = false;
            //        btnIn.Visible = false;
            //        btnXoa.Visible = false;
            //        btnThem.Visible = false; 
            //    }
            //}
        }

        private void txtDonVi_DoubleClick(object sender, EventArgs e)
        {
            frmDONVI frm;
            frm = new frmDONVI(this, enumNHOM.DONVI);
            frm.ShowDialog();
            if (objDonVi != null)
                txtDonVi.Text = objDonVi.TEN_DONVI;
        }

        /// <summary>
        /// Khoi tao doi tuong NHAN SU tu cac thuoc tinh control o form NHAN SU
        /// </summary>
        public void GetObjectNHANSU()
        {
            CultureInfo culture = new CultureInfo("fr-FR", true);

            //Đơn vị công tác hiện tại
            objNHANVIEN.ID_DONVI = objDonVi.ID_DONVI;

            //Loại nhân viên
            objNHANVIEN.ID_LOAINV = (int)cmbLoaiNV.SelectedValue;

            //Mã cán bộ - công chức
            objNHANVIEN.MACBCC = txtMaCBCC.Text;

            //1.1.Họ và tên khai sinh:
            objNHANVIEN.TEN_KHAISINH = txtTenKhaiSinh.Text;

            //1.2.Giới tính
            objNHANVIEN.GIOITINH = cmbGioiTinh.Text;

            //2.Họ và tên thường gọi:
            objNHANVIEN.TEN_THUONGGOI = txtTenThuongGoi.Text;

            //3.1.Chức vụ Đảng:
            try
            {
                objNHANVIEN.ID_CHUCVU_DANG = (int)cmbChucVuDang.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_CHUCVU_DANG = -1;
            }

            //3.2.Chức vụ chính quyền:
            try
            {
                objNHANVIEN.ID_CHUCVU_CQ = (int)cmbChucVuCQ.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_CHUCVU_CQ = -1;
            }

            //3.3.Chức vụ đoàn thể:
            try
            {
                objNHANVIEN.ID_CHUCVU_DT = (int)cmbChucVuDT.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_CHUCVU_DT = -1;
            }

            //4.Sinh ngày
            objNHANVIEN.NGAYSINH = dtNgaySinh.Value;

            //5.Nơi sinh
            objNHANVIEN.NOISINH = idNoiSinh;

            //6.Quê quán
            objNHANVIEN.QUEQUAN = idQueQuan;

            //7.Nơi ở hiện nay
            objNHANVIEN.DIACHI = txtNoiOHienNay.Text;

            //8.Dân tộc
            objNHANVIEN.ID_DANTOC = (int)cmbDanToc.SelectedValue;

            //9.Tôn giáo
            objNHANVIEN.ID_TONGIAO = (int)cmbTonGiao.SelectedValue;

            //10.Thành phần gia đình xuất thân
            objNHANVIEN.ID_THANHPHAN = (int)cmbThanhPhanGiaDinh.SelectedValue;

            //11.Nghề nghiệp bản thân trước khi tuyển dụng
            objNHANVIEN.NGHENGHIEPTRUOC = txtNgheNghiepTruoc.Text;
            
            //12.1.Ngày được tuyển dụng (Năm vào ngành)
            try{
                objNHANVIEN.NGAYTUYENDUNG = DateTime.Parse(txtNgayTuyenDung.Text,culture,DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NGAYTUYENDUNG = MyDate.DateNull();
            }

            //12.2.Cơ quan tuyển dụng
            objNHANVIEN.COQUANTUYENDUNG = txtCoQuanTuyenDung.Text;
            
            //13.Ngày vào cơ quan hiện đang công tác
            try
            {
                objNHANVIEN.NGAYVAOCOQUAN = DateTime.Parse(txtNgayVaoCQ.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch
            {
                objNHANVIEN.NGAYVAOCOQUAN = MyDate.DateNull();
            }

            //14.Ngày tham gia cách mạng
            try{
                objNHANVIEN.NGAYTGCM = DateTime.Parse(txtNgayTGCM.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NGAYTGCM = MyDate.DateNull();
            }

            //15.Ngày vào Đảng Cộng sản Việt Nam
            try{
                
                objNHANVIEN.NGAYKETNAP = DateTime.Parse(txtNgayVaoDang.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NGAYKETNAP = MyDate.DateNull();
            }

            //16.Ngày chính thức
            try{
                objNHANVIEN.NGAYCHINHTHUC = DateTime.Parse(txtNgayChinhThuc.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NGAYCHINHTHUC = MyDate.DateNull();
            }

            //17.Ngày tham gia các tổ chức chính trị, xã hội
            try{
                objNHANVIEN.NGAYTGTCCTXH = DateTime.Parse(txtNgayTGTCCTXH.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NGAYTGTCCTXH = MyDate.DateNull();
            }

            //18.1.Ngày nhập ngũ
            try{
                objNHANVIEN.NGAYNHAPNGU = DateTime.Parse(txtNgayNhapNgu.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NGAYNHAPNGU = MyDate.DateNull();
            }

            //18.2.Ngày xuất ngũ
            try{
                 objNHANVIEN.NGAYXUATNGU = DateTime.Parse(txtNgayXuatNgu.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NGAYXUATNGU = MyDate.DateNull();
            }

            //18.3.Quân hàm, chức vụ cao nhất
            objNHANVIEN.QUANHAMCHUCVUCN = txtQuanHamChucVuCN.Text;

            //18.4.Năm nhận Quân hàm, chức vụ cao nhất
            try
            {
                objNHANVIEN.NAMQHCV = int.Parse(txtNamQHCV.Text);
            }
            catch
            {
                objNHANVIEN.NAMQHCV = -1;
            }
            

            //19.Trình độ học vấn
            try
            {
                objNHANVIEN.ID_HOCVAN = (int)cmbTDHocVan.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_HOCVAN = 0;
            }

            //20.Trình độ chuyên môn
            objNHANVIEN.ID_CHUYENMON = (int)cmbTDChuyenMon.SelectedValue;

            //21.Học hàm, học vị cao nhất
            try
            {
                objNHANVIEN.ID_HOCHAM = (int)cmbHocHam.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_HOCHAM = 0;
            }       
     
            //22.Trình độ lý luận chính trị
            objNHANVIEN.ID_CHINHTRI = (int)cmbTDChinhTri.SelectedValue;

            //23.Trình độ ngoại ngữ
            objNHANVIEN.NGOAINGU = txtNgoaiNgu.Text;

            //24.Trình độ tin học
            objNHANVIEN.TINHOC = txtTinHoc.Text;

            //25.Công tác chính đang làm
            objNHANVIEN.CONGTACCHINH = txtCongTacChinh.Text;

            //27.1 Danh hiệu được phong
            
            try
            {
                objNHANVIEN.ID_DANHHIEU = (int)cmbDanhHieu.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_DANHHIEU = 1; //Empty
            }

            //27.2 Năm được phong
            try
            {
                objNHANVIEN.NAMDANHHIEU = int.Parse(txtNamDanhHieu.Text);
            }
            catch
            {
                objNHANVIEN.NAMDANHHIEU = -1;
            }

            //28.1 Sở trường công tác
            objNHANVIEN.SOTRUONGCT = txtSoTruongCT.Text;

            //28.2 Công việc làm lâu nhất
            objNHANVIEN.CONGVIECLAUNHAT = txtCongViecLauNhat.Text;

            //31.1.Tình trạng sức khỏe
            try
            {
                objNHANVIEN.ID_SUCKHOE = (int)cmbSucKhoe.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_SUCKHOE = 1; //Tot
            }
            

            //31.2.Chiều cao
            objNHANVIEN.CHIEUCAO = txtChieuCao.Text;

            //31.3.Cân nặng
            objNHANVIEN.CANNANG = txtCanNang.Text;

            //31.4.Nhóm máu
            try
            {
                objNHANVIEN.ID_NHOMMAU = (int)cmbNhomMau.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_NHOMMAU = -1;
            }

            //32.1.Số chứng minh thư nhân dân
            objNHANVIEN.CMND = txtCMND.Text;

            //32.2.Ngày cấp CMND
            objNHANVIEN.NGAYCAP = dtNgayCap.Value;

            //32.2.Cơ quan cấp CMND
            objNHANVIEN.COQUANCAP = txtCoQuanCap.Text;

            //33.1.Thương binh loại           
            try{
                objNHANVIEN.ID_THUONGBINH = (int)cmbThuongBinh.SelectedValue;
            }
            catch
            {
                objNHANVIEN.ID_SUCKHOE = 0;
            }
            //33.2.Gia đình liệt sĩ
            objNHANVIEN.GIADINHLIETSY = chkGDLS.Checked;

            //33.3.Gia đình có công cách mạng
            objNHANVIEN.GIADINHCCCM = chkGDCM.Checked;

            //39.1.Lương
            objNHANVIEN.LUONG = txtLuong.Text;

            //39.2.Các nguồn khác
            objNHANVIEN.CACNGUONKHAC = txtCacNguonKhac.Text;

            //39.3.1.Nhà ở: Được cấp, được thuê, loại nhà
            objNHANVIEN.NHAO_1 = txtNhao_1.Text;

            //39.3.2.Tổng diện tích sử dụng
            if (txtDienTich_1.Text != "")
                objNHANVIEN.DIENTICH_1 = float.Parse(txtDienTich_1.Text);
            else
                objNHANVIEN.DIENTICH_1 = 0;

            //39.4.1Nhà ở: Nhà tự mua, tự xây, loại nhà
            objNHANVIEN.NHAO_2 = txtNhao_2.Text;

            //39.4.2.Tổng diện tích sử dụng
            if (txtDienTich_2.Text != "")
                objNHANVIEN.DIENTICH_2 = float.Parse(txtDienTich_2.Text);
            else
                objNHANVIEN.DIENTICH_2 = 0;

            //39.5.Đất ở: Đất được cấp
            objNHANVIEN.DATO_1 = txtDato_1.Text;

            //39.6.Đất ở: Đất tự mua
            objNHANVIEN.DATO_2 = txtDato_2.Text;

            //39.7.Đất sản xuất, kinh doanh:
            objNHANVIEN.DATSXKD = txtDatSXKD.Text; ;

            //40.Năm làm cán bộ quản lý
            try{
                objNHANVIEN.NAMCBQL = DateTime.Parse(txtNamCBQL.Text, culture, DateTimeStyles.NoCurrentDateDefault);
            }
            catch{
                objNHANVIEN.NAMCBQL = MyDate.DateNull();
            }

            //41.Hệ đào tạo
            try{
                objNHANVIEN.ID_HEDAOTAO = (int)cmbHeDaoTao.SelectedValue;
            }
            catch{
                objNHANVIEN.ID_HEDAOTAO = -1;
            }

            //42.Môn đào tạo
            try{
                objNHANVIEN.ID_MONDAOTAO = (int)cmbMonDaoTao.SelectedValue;
            }
            catch{
                objNHANVIEN.ID_MONDAOTAO = -1;
            }

            //43.Đã học quản lý giáo dục
            objNHANVIEN.QLGIAODUC = chkDaHocQLGD.Checked;

            //44.Đã học quản lý nhà nước
            objNHANVIEN.QLNHANUOC = chkDaHocQLNN.Checked;

            //45.Hệ số phục cấp chức vụ
            try{
                objNHANVIEN.HESOPCCV = float.Parse(txtHeSoPCCV.Text);
            }
            catch{
                objNHANVIEN.HESOPCCV = -1;
            }

            //46.Ghi chú
            objNHANVIEN.GHICHU = null;
        }

        /// <summary>
        /// Load mac dinh hay copy du lieu tu mot nguoi nao do vao form control,
        /// trong do input "value" la tieu chi load du lieu
        /// </summary>
        /// <param name="value"> 
        /// value = 0: Load moi hoan toan
        /// value = 1: Load lai theo thong tin nguoi hien tai
        /// value = 2: Load theo thong tin cua nguoi duoc chon khac nguoi hien tai
        /// </param>
        public void LoadDefaultNHANSUData(int value)
        {
            if (value == 0)
            {
                ResetFormNHANSU();
            }
            else if (value == 1)
            {
                //Reset object
                objNHANVIEN = null;
                
                //Thong tin yeu cau toi thieu phai khac
                txtMaCBCC.Text = "";
                txtTenKhaiSinh.Text = "";
                txtTenThuongGoi.Text = "";
                dtNgaySinh.Value = MyDate.DateNull();
            }
            else if (value == 2)
            {
                frmDSNHANSU frm = new frmDSNHANSU(this);
                frm.ShowDialog();
                
                //Reset object
                objNHANVIEN = null;
                //Thong tin yeu cau toi thieu phai khac
                txtMaCBCC.Text = "";
                txtTenKhaiSinh.Text = "";
                txtTenThuongGoi.Text = "";
                dtNgaySinh.Value = MyDate.DateNull();
            }
        }

        public void ResetFormNHANSU()
        {
            //Reset object
            objNHANVIEN = null;
            objLUONG = null;

            //Reset Don vi hien tai
            //objDonVi = null;
            //txtDonVi.Text = "";

            //Loại nhân viên
            cmbLoaiNV.SelectedIndex = 0;

            //Mã cán bộ - công chức
            txtMaCBCC.Text = "";

            //1.1.Họ và tên khai sinh:
            txtTenKhaiSinh.Text = "";

            //1.2.Giới tính
            cmbGioiTinh.Text = "";

            //2.Họ và tên thường gọi:
            txtTenThuongGoi.Text = "";

            //3.1.Chức vụ Đảng:
            cmbChucVuDang.SelectedIndex = 0;

            //3.2.Chức vụ chính quyền:
            cmbChucVuCQ.SelectedIndex = 0;

            //3.3.Chức vụ đoàn thể:
            cmbChucVuDT.SelectedIndex = 0;

            //4.Sinh ngày
            dtNgaySinh.Value = MyDate.DateNull();

            //5.Nơi sinh
            txtNoiSinhXa.Text = "";

            //6.Quê quán
            txtQueQuanXa.Text = "";

            //7.Nơi ở hiện nay
            txtNoiOHienNay.Text = "";

            //8.Dân tộc
            cmbDanToc.SelectedIndex = 0;

            //9.Tôn giáo
            cmbTonGiao.SelectedIndex = 0;

            //10.Thành phần gia đình xuất thân
            cmbThanhPhanGiaDinh.SelectedIndex = 0;

            //11.Nghề nghiệp bản thân trước khi tuyển dụng
            txtNgheNghiepTruoc.Text = "";

            //12.1.Ngày được tuyển dụng (Năm vào ngành)
            txtNgayTuyenDung.Text = "";

            //12.2.Cơ quan tuyển dụng  (Đơn vị công tác)
            txtCoQuanTuyenDung.Text = "";

            //13.Ngày vào cơ quan hiện đang công tác
            txtNgayVaoCQ.Text = "";

            //14.Ngày tham gia cách mạng
            txtNgayTGCM.Text = "";
            
            //15.Ngày vào Đảng Cộng sản Việt Nam
            txtNgayVaoDang.Text = "";
    
            //16.Ngày chính thức
            txtNgayChinhThuc.Text = "";
            
            //17.Ngày tham gia các tổ chức chính trị, xã hội
            txtNgayTGTCCTXH.Text = "";
            
            //18.1.Ngày nhập ngũ
            txtNgayNhapNgu.Text = "";
            
            //18.2.Ngày xuất ngũ
            txtNgayXuatNgu.Text = "";
            
            //18.3.Quân hàm, chức vụ cao nhất
            txtQuanHamChucVuCN.Text = "";

            //18.4.Năm nhận Quân hàm, chức vụ cao nhất
            txtNamQHCV.Text = "";

            //19.Trình độ học vấn
            cmbTDHocVan.SelectedIndex = 0;

            //20.Trình độ chuyên môn
            cmbTDChuyenMon.SelectedIndex = 0;

            //21.Học hàm, học vị cao nhất
            cmbHocHam.SelectedIndex = 0;

            //22.Trình độ lý luận chính trị
            cmbTDChinhTri.SelectedIndex = 0;

            //23.Trình độ ngoại ngữ
            txtNgoaiNgu.Text = "";

            //24.Trình độ tin học
            txtTinHoc.Text = "";

            //25.Công tác chính đang làm
            txtCongTacChinh.Text = "";

            //28.Sở trường công tác
            txtSoTruongCT.Text = "";

            //31.1.Tình trạng sức khỏe
            cmbSucKhoe.SelectedIndex = 0;

            //31.2.Chiều cao
            txtChieuCao.Text = "";

            //31.3.Cân nặng
            txtCanNang.Text = "";

            //31.4.Nhóm máu
            cmbNhomMau.SelectedIndex = 0;

            //32.1.Số chứng minh thư nhân dân
            txtCMND.Text = "";

            //32.2.Ngày cấp CMND
            dtNgayCap.Value = MyDate.DateNull();

            //32.2.Cơ quan cấp CMND
            txtCoQuanCap.Text = "";

            //33.1.Thương binh loại           
            cmbThuongBinh.SelectedIndex = 0;

            //33.2.Gia đình liệt sĩ
            chkGDLS.Checked = false;

            //33.3.Gia đình có công cách mạng
            chkGDCM.Checked = false;

            //39.1.Lương
            txtLuong.Text = "";

            //39.2.Các nguồn khác
            txtCacNguonKhac.Text = "";

            //39.3.1.Nhà ở: Được cấp, được thuê, loại nhà
            txtNhao_1.Text = "";

            //39.3.2.Tổng diện tích sử dụng
            txtDienTich_1.Text = "";
            
            //39.4.1Nhà ở: Nhà tự mua, tự xây, loại nhà
            txtNhao_2.Text = "";

            //39.4.2.Tổng diện tích sử dụng
            txtDienTich_2.Text = "";
            
            //39.5.Đất ở: Đất được cấp
            txtDato_1.Text = "";

            //39.6.Đất ở: Đất tự mua
            txtDato_2.Text = "";

            //39.7.Đất sản xuất, kinh doanh:
            txtDatSXKD.Text = "";

            //40.Năm làm cán bộ quản lý
            txtNamCBQL.Text = "";
            
            //41.Hệ đào tạo
            cmbHeDaoTao.SelectedIndex = 0;

            //42.Môn đào tạo
            cmbMonDaoTao.SelectedIndex = 0;

            //43.Đã học quản lý giáo dục
            chkDaHocQLGD.Checked = false;

            //44.Đã học quản lý nhà nước
            chkDaHocQLNN.Checked = false;

            //45.Hệ số phục cấp chức vụ
            txtHeSoPCCV.Text = "";

            //46.Ghi chú
            //objNHANVIEN.GHICHU = "";

            //Reset cac thuoc tinh cua LUONG
            dtNgayXepLuong.Value = MyDate.DateNull();
            numericUpDownTNVK.Value = 0;
            txtNgach.Text = "";
            txtMaSo.Text = "";
            txtBacLuong.Text = "";
            txtHeSoLuong.Text = "";
        }

        /// <summary>
        /// Load thong tin tu object NHAN SU vao cac form control
        /// </summary>
        public void FillFormNHANSU()
        {
            //Đơn vị công tác
            objDonVi = CDONVICollection.LayCoQuanTheoID(objNHANVIEN.ID_DONVI);
            txtDonVi.Text = objDonVi.TEN_DONVI;

            //Loại nhân viên
            cmbLoaiNV.SelectedValue = objNHANVIEN.ID_LOAINV;

            //Mã cán bộ - công chức
            txtMaCBCC.Text = objNHANVIEN.MACBCC;

            //1.1.Họ và tên khai sinh:
            txtTenKhaiSinh.Text = objNHANVIEN.TEN_KHAISINH;

            //1.2.Giới tính
            cmbGioiTinh.Text = objNHANVIEN.GIOITINH;

            //2.Họ và tên thường gọi:
            txtTenThuongGoi.Text = objNHANVIEN.TEN_THUONGGOI;

            //3.1.Chức vụ Đảng:
            cmbChucVuDang.SelectedValue = objNHANVIEN.ID_CHUCVU_DANG;

            //3.2.Chức vụ chính quyền:
            cmbChucVuCQ.SelectedValue = objNHANVIEN.ID_CHUCVU_CQ;

            //3.3.Chức vụ đoàn thể:
            cmbChucVuDT.SelectedValue = objNHANVIEN.ID_CHUCVU_DT;
            
            //4.Sinh ngày
            dtNgaySinh.Value = objNHANVIEN.NGAYSINH;

            //5.Nơi sinh
            idNoiSinh = objNHANVIEN.NOISINH;
            if (idNoiSinh != -1)
            {
                CDIADANH objDiaDanh = CDIADANHCollection.LayTheoID(idNoiSinh);
                TINHTHANH sNoiSinh;
                sNoiSinh = objDiaDanh.TachTinhThanh();
                txtNoiSinhTinh.Text = sNoiSinh.Tinh;
                txtNoiSinhHuyen.Text = sNoiSinh.Huyen;
                txtNoiSinhXa.Text = sNoiSinh.Xa;
            }

            //6.Quê quán
            idQueQuan = objNHANVIEN.QUEQUAN;
            if (idQueQuan != -1)
            {
                CDIADANH objDiaDanh = CDIADANHCollection.LayTheoID(idQueQuan);
                TINHTHANH sQueQuan;
                sQueQuan = objDiaDanh.TachTinhThanh();
                txtQueQuanTinh.Text = sQueQuan.Tinh;
                txtQueQuanHuyen.Text = sQueQuan.Huyen;
                txtQueQuanXa.Text = sQueQuan.Xa;
            }

            //7.Nơi ở hiện nay
            txtNoiOHienNay.Text = objNHANVIEN.DIACHI;
            
            //8.Dân tộc
            cmbDanToc.SelectedValue = objNHANVIEN.ID_DANTOC;

            //9.Tôn giáo
            cmbTonGiao.SelectedValue = objNHANVIEN.ID_TONGIAO;

            //10.Thành phần gia đình xuất thân
            cmbThanhPhanGiaDinh.SelectedValue = objNHANVIEN.ID_THANHPHAN;

            //11.Nghề nghiệp bản thân trước khi tuyển dụng
            txtNgheNghiepTruoc.Text = objNHANVIEN.NGHENGHIEPTRUOC;

            //12.1.Ngày được tuyển dụng (Năm vào ngành)
            if (objNHANVIEN.NGAYTUYENDUNG == MyDate.DateNull())
                txtNgayTuyenDung.Text = "";
            else
            {
                //txtNgayTuyenDung.Text = String.Format(objNHANVIEN.NGAYTUYENDUNG.ToShortDateString(), MyDate.FormatDateStyle());
                //DateTimeFormatInfo dtformat = new CultureInfo("en-US",false).DateTimeFormat;
                CultureInfo culture = new CultureInfo("fr-FR", true);
                //dtformat.ShortDatePattern = "dd/MM/yyyy";
                txtNgayTuyenDung.Text = objNHANVIEN.NGAYTUYENDUNG.ToString(culture);
            }

            //12.2.Cơ quan tuyển dụng
            txtCoQuanTuyenDung.Text = objNHANVIEN.COQUANTUYENDUNG;
            
            //13.Ngày vào cơ quan hiện đang công tác (Năm vào ngành)
            if (objNHANVIEN.NGAYVAOCOQUAN == MyDate.DateNull())
                txtNgayVaoCQ.Text = "";
            else
                txtNgayVaoCQ.Text = String.Format(objNHANVIEN.NGAYVAOCOQUAN.ToShortDateString(), MyDate.FormatDateStyle());


            //14.Ngày tham gia cách mạng
            if (objNHANVIEN.NGAYTGCM == MyDate.DateNull())
                txtNgayTGCM.Text = "";
            else
                //txtNgayTGCM.Text = String.Format(objNHANVIEN.NGAYTGCM.ToShortDateString(), MyDate.FormatDateStyle());
                txtNgayTGCM.Text = MyDate.ConvertDateTypeToStringType(objNHANVIEN.NGAYTGCM);

            //15.Ngày vào Đảng Cộng sản Việt Nam
            if (objNHANVIEN.NGAYKETNAP == MyDate.DateNull())
                txtNgayVaoDang.Text = "";
            else
                //txtNgayVaoDang.Text = String.Format(objNHANVIEN.NGAYKETNAP.ToShortDateString(), MyDate.FormatDateStyle());
                txtNgayVaoDang.Text = MyDate.ConvertDateTypeToStringType(objNHANVIEN.NGAYKETNAP);

            //16.Ngày chính thức
            if (objNHANVIEN.NGAYCHINHTHUC == MyDate.DateNull())
                txtNgayChinhThuc.Text = "";
            else
                //txtNgayChinhThuc.Text = String.Format(objNHANVIEN.NGAYCHINHTHUC.ToShortDateString(), MyDate.FormatDateStyle());
                txtNgayChinhThuc.Text = MyDate.ConvertDateTypeToStringType(objNHANVIEN.NGAYCHINHTHUC);

            //17.Ngày tham gia các tổ chức chính trị, xã hội
            if (objNHANVIEN.NGAYTGTCCTXH == MyDate.DateNull())
                txtNgayTGTCCTXH.Text = "";
            else
                //txtNgayTGTCCTXH.Text = String.Format(objNHANVIEN.NGAYTGTCCTXH.ToShortDateString(), MyDate.FormatDateStyle());
                txtNgayTGTCCTXH.Text = MyDate.ConvertDateTypeToStringType(objNHANVIEN.NGAYTGTCCTXH);

            //18.1.Ngày nhập ngũ
            if (objNHANVIEN.NGAYNHAPNGU == MyDate.DateNull())
                txtNgayNhapNgu.Text = "";
            else
                //txtNgayNhapNgu.Text = String.Format(objNHANVIEN.NGAYNHAPNGU.ToShortDateString(), MyDate.FormatDateStyle());
                txtNgayNhapNgu.Text = MyDate.ConvertDateTypeToStringType(objNHANVIEN.NGAYNHAPNGU);

            //18.2.Ngày xuất ngũ
            if (objNHANVIEN.NGAYXUATNGU == MyDate.DateNull())
                txtNgayXuatNgu.Text = "";
            else
                //txtNgayXuatNgu.Text = String.Format(objNHANVIEN.NGAYXUATNGU.ToShortDateString(), MyDate.FormatDateStyle());
                txtNgayXuatNgu.Text = MyDate.ConvertDateTypeToStringType(objNHANVIEN.NGAYXUATNGU);

            //18.3.Quân hàm, chức vụ cao nhất
            txtQuanHamChucVuCN.Text = objNHANVIEN.QUANHAMCHUCVUCN;

            //18.4.Năm nhận Quân hàm, chức vụ cao nhất
            txtNamQHCV.Text = objNHANVIEN.NAMQHCV.ToString();

            //19.Trình độ học vấn
            cmbTDHocVan.SelectedValue = objNHANVIEN.ID_HOCVAN;

            //20.Trình độ chuyên môn
            cmbTDChuyenMon.SelectedValue = objNHANVIEN.ID_CHUYENMON;

            //21.Học hàm, học vị cao nhất
            cmbHocHam.SelectedValue = objNHANVIEN.ID_HOCHAM;

            //22.Trình độ lý luận chính trị
            cmbTDChinhTri.SelectedValue = objNHANVIEN.ID_CHINHTRI;

            //23.Trình độ ngoại ngữ
            txtNgoaiNgu.Text = objNHANVIEN.NGOAINGU;

            //24.Trình độ tin học
            txtTinHoc.Text = objNHANVIEN.TINHOC;

            //25.Công tác chính đang làm
            txtCongTacChinh.Text = objNHANVIEN.CONGTACCHINH;

            //27.1 Danh hiệu được phong
            cmbDanhHieu.SelectedValue = objNHANVIEN.ID_DANHHIEU;

            //27.2 Năm được phong
            txtNamDanhHieu.Text = objNHANVIEN.NAMDANHHIEU.ToString();

            //28.1 Sở trường công tác
            txtSoTruongCT.Text = objNHANVIEN.SOTRUONGCT;

            //28.2 Công việc làm lâu nhất
            txtCongViecLauNhat.Text = objNHANVIEN.CONGVIECLAUNHAT;

            //31.1.Tình trạng sức khỏe
            cmbSucKhoe.SelectedValue = objNHANVIEN.ID_SUCKHOE;

            //31.2.Chiều cao
            txtChieuCao.Text = objNHANVIEN.CHIEUCAO;

            //31.3.Cân nặng
            txtCanNang.Text = objNHANVIEN.CANNANG;

            //31.4.Nhóm máu
            cmbNhomMau.SelectedValue = objNHANVIEN.ID_NHOMMAU; 

            //32.1.Số chứng minh thư nhân dân
            txtCMND.Text = objNHANVIEN.CMND;

            //32.2.Ngày cấp CMND
            dtNgayCap.Value = objNHANVIEN.NGAYCAP;

            //32.2.Cơ quan cấp CMND
            txtCoQuanCap.Text = objNHANVIEN.COQUANCAP;

            //33.1.Thương binh loại           
            cmbThuongBinh.SelectedValue = objNHANVIEN.ID_THUONGBINH;

            //33.2.Gia đình liệt sĩ
            chkGDLS.Checked = objNHANVIEN.GIADINHLIETSY;

            //33.3.Gia đình có công cách mạng
            chkGDCM.Checked = objNHANVIEN.GIADINHCCCM;

            //39.1.Lương
            txtLuong.Text = objNHANVIEN.LUONG;

            //39.2.Các nguồn khác
            txtCacNguonKhac.Text = objNHANVIEN.CACNGUONKHAC;

            //39.3.1.Nhà ở: Được cấp, được thuê, loại nhà
            txtNhao_1.Text = objNHANVIEN.NHAO_1;

            //39.3.2.Tổng diện tích sử dụng
            if (objNHANVIEN.DIENTICH_1 > 0)
                txtDienTich_1.Text = objNHANVIEN.DIENTICH_1.ToString();
            else
                txtDienTich_1.Text = "";

            //39.4.1 Nhà ở: Nhà tự mua, tự xây, loại nhà
            txtNhao_2.Text = objNHANVIEN.NHAO_2;

            //39.4.2.Tổng diện tích sử dụng
            if (objNHANVIEN.DIENTICH_2 > 0)
                txtDienTich_2.Text = objNHANVIEN.DIENTICH_2.ToString();
            else
                txtDienTich_2.Text = "";

            //39.5.Đất ở: Đất được cấp
            txtDato_1.Text = objNHANVIEN.DATO_1;

            //39.6.Đất ở: Đất tự mua
            txtDato_2.Text = objNHANVIEN.DATO_2;

            //39.7.Đất sản xuất, kinh doanh:
            txtDatSXKD.Text = objNHANVIEN.DATSXKD;

            //40.Năm làm cán bộ quản lý
            if (objNHANVIEN.NAMCBQL == MyDate.DateNull())
                txtNamCBQL.Text = "";
            else
                //txtNamCBQL.Text = String.Format(objNHANVIEN.NAMCBQL.ToShortDateString(), MyDate.FormatDateStyle());
                txtNamCBQL.Text = MyDate.ConvertDateTypeToStringType(objNHANVIEN.NAMCBQL);

            //41.Hệ đào tạo
            cmbHeDaoTao.SelectedValue = objNHANVIEN.ID_HEDAOTAO;

            //42.Môn đào tạo
            cmbMonDaoTao.SelectedValue = objNHANVIEN.ID_MONDAOTAO;

            //43.Đã học quản lý giáo dục
            chkDaHocQLGD.Checked = objNHANVIEN.QLGIAODUC;

            //44.Đã học quản lý nhà nước
            chkDaHocQLNN.Checked = objNHANVIEN.QLNHANUOC;

            //45.Hệ số phục cấp chức vụ
            txtHeSoPCCV.Text = objNHANVIEN.HESOPCCV.ToString();

            //46.Ghi chú
            //objNHANVIEN.GHICHU = null;

            //Load luong hien tai cua nhan vien
            objLUONG = CLUONGCollection.LayLuongHienTaiTheoID_NHANVIEN(objNHANVIEN.ID_NHANVIEN);
            if (objLUONG != null)
            {
                //Hien thi Ngach, Bac, He So luong theo ID_NBL
                HienThiNBL(objLUONG.ID_NBL);
                //Hien thi cac thong tin con lai cua LUONG
                dtNgayXepLuong.Value = objLUONG.NAMXEPLUONG;
                numericUpDownTNVK.Value = (objLUONG.PHUCAPTNVK == 0 ? 0 : objLUONG.PHUCAPTNVK);
                objLUONG.HESOCLBL = -1;
                objLUONG.ID_LYDONL = 1;
            }
        }

        public bool KiemTraDuLieuHopLe()
        {
            if (cmbLoaiNV.Text == "")
            {
                MessageBox.Show("Chưa chọn Loại Nhân sự");
                cmbLoaiNV.Focus();
                return false;
            }

            if (txtMaCBCC.Text == "")
            {
                MessageBox.Show("Chưa chọn Mã CBCC");
                txtMaCBCC.Focus();
                return false;
            }

            if (txtTenKhaiSinh.Text == "")
            {
                MessageBox.Show("Họ tên Khai sinh chưa có");
                txtTenKhaiSinh.Focus();
                return false;
            }

            if (dtNgaySinh.Value == MyDate.DateNull())
            {
                MessageBox.Show("Chưa chọn Ngày sinh");

                dtNgaySinh.Focus();
                return false;
            }

            if (cmbDanToc.SelectedValue == null)
            {
                MessageBox.Show("Dân tộc chưa chọn");
                tabControl1.SelectedTab = tabPageSLLL;
                cmbDanToc.Focus();
                return false;
            }
            
            if (cmbTonGiao.SelectedValue == null)
            {
                MessageBox.Show("Tôn giáo chưa chọn");
                tabControl1.SelectedTab = tabPageSLLL;
                cmbTonGiao.Focus();
                return false;
            }
            
            if (cmbThanhPhanGiaDinh.SelectedValue == null)
            {
                MessageBox.Show("Thành phần gia đình chưa chọn");
                tabControl1.SelectedTab = tabPageSLLL;
                cmbThanhPhanGiaDinh.Focus();
                return false;
            }
            
            if (objDonVi == null)
            {
                MessageBox.Show("Chưa chọn Đơn vị công tác");
                txtDonVi.Focus();
                return false;
            }

            //if (dtNamVaoNganh.Value == MyDate.DateNull())
            //{
            //    MessageBox.Show("Chưa chọn Năm vào ngành");
            //    tabControl1.SelectedTab = tabPage1;
            //    dtNamVaoNganh.Focus();
            //    return false;
            //}


            if (objLUONG == null)
            {
                MessageBox.Show("Chưa chọn Lương");
                tabControl1.SelectedTab = tabPageSLLL;
                txtNgach.Focus();
                return false;
            }

            if (dtNgayXepLuong.Value == MyDate.DateNull())
            {
                MessageBox.Show("Chưa chọn Năm xếp lương");
                tabControl1.SelectedTab = tabPageSLLL;
                dtNgayXepLuong.Focus();
                return false;
            }

            return true;
        }

        public void CapNhat(){
            if (KiemTraDuLieuHopLe() == false)
                return;

            //Load du lieu cho doi tuong LUONG 
            //objLUONG.ID_NBL = id_NBL;
            objLUONG.NAMXEPLUONG = dtNgayXepLuong.Value;
            objLUONG.PHUCAPTNVK = (numericUpDownTNVK.Value == 0 ? 0 : (int)numericUpDownTNVK.Value);
            objLUONG.HESOCLBL = 0;
            objLUONG.ID_LYDONL = 1;

            //Neu doi tuong nhan vien chua khoi tao tuc la THEM MOI
            if (objNHANVIEN == null)
            {
                //Khoi tao doi tuong nhan su
                objNHANVIEN = new CNHANVIEN();
                GetObjectNHANSU();
                //Insert
                try
                {
                    objLUONG.ID_NHANVIEN = CNHANVIENCollection.InsertandReturnID(objNHANVIEN);
                    //Insert LUONG moi
                    CLUONGCollection.Insert(objLUONG);
                    if (fCallForm != null)
                    {
                        if (fCallForm.Name == "frmDSNangLuong")
                        {
                            frmDSNangLuong frm = (frmDSNangLuong)fCallForm;
                            frm.LoadDataGridJanus();
                        }
                        else if (fCallForm.Name == "frmDSNHANSU")
                        {
                            frmDSNHANSU frm = (frmDSNHANSU)fCallForm;
                            frm.LoadDataGridJanusDSNhanSu();
                        }
                    }
                    MessageBox.Show("Thêm thành công!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            else
            {
                //Load lai doi tuong Nhan su
                GetObjectNHANSU();

                //Update
                try
                {
                    CNHANVIENCollection.Update(objNHANVIEN);
                    objLUONG.ID_NHANVIEN = objNHANVIEN.ID_NHANVIEN;
                    //Neu chua ton tai LUONG thi them moi, nguoc lai cap nhat
                    if (objLUONG.isExists())
                    {
                        CLUONGCollection.Update(objLUONG);
                    }
                    else
                    {
                        CLUONGCollection.Insert(objLUONG);
                    }

                    if (fCallForm != null)
                    {
                        if (fCallForm.Name == "frmDSNangLuong")
                        {
                            frmDSNangLuong frm = (frmDSNangLuong)fCallForm;
                            frm.LoadDataGridJanus();
                        }
                        else if (fCallForm.Name == "frmDSNangLuong")
                        {
                            frmDSNHANSU frm = (frmDSNHANSU)fCallForm;
                            frm.LoadDataGridJanusDSNhanSu();
                        }
                    }
                    MessageBox.Show("Cập nhật thành công!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn thật sự muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                if (CNHANVIENCollection.Delete(objNHANVIEN) > 0)
                {
                    MessageBox.Show("Xóa thành công");
                    ResetFormNHANSU();
                }
                else
                    MessageBox.Show("Xóa không thành công");
            }
        }

        private void btnGhi_Click(object sender, EventArgs e)
        {
            //if (tabControl1.SelectedTab.Name == tabPageSLLL.Name ||
            //    tabControl1.SelectedTab.Name == tabPageTTBS.Name)
                CapNhat();
            //else
            //{
            //    if (objNHANVIEN != null)
            //    MessageBox.Show("Trang 3 chua cap nhat dc");
            //}
        }

        private void btnThem_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                System.Drawing.Point ClickPoint = new System.Drawing.Point(e.X, e.Y);
                
                // Convert from Tree coordinates to Screen coordinates
                System.Drawing.Point ScreenPoint = btnThem.PointToScreen(ClickPoint);
                // Convert from Screen coordinates to Formc coordinates
                System.Drawing.Point FormPoint = this.PointToClient(ScreenPoint);
                //Show context menu
                contextMenuStrip3.Show(this, FormPoint);
            }
        }

        private void thêmMớiHoànToànToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LoadDefaultNHANSUData(0);
        }

        private void dựaTheoThôngTinHiệnTạiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LoadDefaultNHANSUData(1);
        }

        private void theoThôngTinNgườiKhácToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LoadDefaultNHANSUData(2);
        }

        public void HienThiNBL(int iID_NBL)
        {
            //Neu objLUONG chua co thi khoi tao
            if (objLUONG == null)
                objLUONG = new CLUONG();
            objLUONG.ID_NBL = iID_NBL;
            string strSQL = "select * from view_NBL where id_NBL = " + objLUONG.ID_NBL.ToString();
            DataSet ds = MITI.BaseDB.Instance.ExecSql_DataSet(strSQL);
            txtNgach.Text = ds.Tables[0].Rows[0]["ten_ngach"].ToString();
            txtMaSo.Text = ds.Tables[0].Rows[0]["maso"].ToString();
            txtBacLuong.Text = ds.Tables[0].Rows[0]["ten_bac"].ToString();
            txtHeSoLuong.Text = ds.Tables[0].Rows[0]["heso"].ToString();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            ResetFormNHANSU();
        }

        public void SetColorControl(object control, bool value)
        {
            System.Windows.Forms.Label lbl = (System.Windows.Forms.Label)control;
            if (value)
            {
                lbl.ForeColor = Color.Black;
                lbl.BackColor = Color.FromArgb(192, 255, 192);
            }
            else
            {
                lbl.ForeColor = Color.Black;
                lbl.BackColor = Color.White;
            }
        }

        private void Label_MouseEnter(object sender, EventArgs e)
        {
            SetColorControl(sender, true);
        }

        private void Label_MouseLeave(object sender, EventArgs e)
        {
            SetColorControl(sender, false);
        }

        //Don vi hien tai
        private void lblDonVi_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            txtDonVi_DoubleClick(null, null);
        }

        //Noi sinh
        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            frmDIADANH frm = new frmDIADANH(this);
            frm.ShowDialog();
            if (objDiaDanh != null)
            {
                TINHTHANH sNoiSinh;
                sNoiSinh = objDiaDanh.TachTinhThanh();
                txtNoiSinhTinh.Text = sNoiSinh.Tinh;
                txtNoiSinhHuyen.Text = sNoiSinh.Huyen;
                txtNoiSinhXa.Text = sNoiSinh.Xa;
                idNoiSinh = (System.Int16)objDiaDanh.ID_DIADANH;
            }
        }

        //Que quan
        private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            frmDIADANH frm = new frmDIADANH(this);
            frm.ShowDialog();
            if (objDiaDanh != null)
            {
                TINHTHANH sQueQuan;
                sQueQuan = objDiaDanh.TachTinhThanh();
                txtQueQuanTinh.Text = sQueQuan.Tinh;
                txtQueQuanHuyen.Text = sQueQuan.Huyen;
                txtQueQuanXa.Text = sQueQuan.Xa;
                idQueQuan = (System.Int16)objDiaDanh.ID_DIADANH;
            }
        }

        //Bang luong
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            frmBangLuong frm = new frmBangLuong(this);
            frm.ShowDialog();
        }
        
        private void btnExcel_Click(object sender, EventArgs e)
        {
            if (objNHANVIEN == null)
            {
                MessageBox.Show("Chưa có thông tin để xuất");
                return;
            }
            CNHANVIENCollection.ToEXCEL(objNHANVIEN.ID_NHANVIEN);
        }

        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (tabControl1.SelectedTab.Name != tabPageSLLL.Name)
                if (objNHANVIEN == null)
                {
                    MessageBox.Show("Phải thêm đầy đủ thông tin ở \"Sơ lược lý lịch\" mới tiếp tục thêm ở trang này.");
                    tabControl1.SelectedTab = tabPageSLLL;
                }

        }

        private void txtTenKhaiSinh_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.KeyChar = Char.Parse(Microsoft.VisualBasic.Strings.StrConv(e.KeyChar.ToString(), VbStrConv.Uppercase, 0));
        }

#region "Tab 29) KHEN THUONG"
        public void FormatStyleDataGridEX(ref Janus.Windows.GridEX.GridEX gridEX)
        {
            gridEX.FlatBorderColor = System.Drawing.SystemColors.ControlDark;
            gridEX.GridLineColor = System.Drawing.SystemColors.ScrollBar;
            gridEX.GroupRowVisualStyle = Janus.Windows.GridEX.GroupRowVisualStyle.Outlook2003;
            gridEX.SelectedFormatStyle.Blend = 0.5F;
            gridEX.SelectedFormatStyle.ForeColor = System.Drawing.SystemColors.WindowText;
            gridEX.VisualStyleAreas.CheckBoxStyle = Janus.Windows.GridEX.VisualStyle.Standard;
            gridEX.VisualStyleAreas.ControlBorderStyle = Janus.Windows.GridEX.VisualStyle.Standard;
            gridEX.VisualStyleAreas.EditControlsStyle = Janus.Windows.GridEX.VisualStyle.Standard;
            gridEX.VisualStyleAreas.GroupByBoxStyle = Janus.Windows.GridEX.VisualStyle.Standard;
            gridEX.VisualStyleAreas.GroupRowsStyle = Janus.Windows.GridEX.VisualStyle.Standard;
            gridEX.VisualStyleAreas.HeadersStyle = Janus.Windows.GridEX.VisualStyle.Office2003;
            gridEX.VisualStyleAreas.ScrollBarsStyle = Janus.Windows.GridEX.VisualStyle.Standard;
            gridEX.VisualStyleAreas.TreeGliphsStyle = Janus.Windows.GridEX.VisualStyle.Standard;

        }

        public void InitDataGridJanusKhenThuong()
        {
            LoadDataGridJanusKhenThuong();

            //Style GridEX
            FormatStyleDataGridEX(ref gridEXKT);

            //group
            gridEXKT.RetrieveStructure();
            gridEXKT.RootTable.Groups.Add(new Janus.Windows.GridEX.GridEXGroup(gridEXKT.RootTable.Columns["TEN_CAPQD"]));
            gridEXKT.RootTable.GroupRowFormatStyle.ForeColor = Color.DarkBlue;
            gridEXKT.GroupByBoxVisible = false;

            FormatDataGridJanusKhenThuong();
        }

        public void LoadDataGridJanusKhenThuong()
        {
            DataSet ds;
            if (objNHANVIEN != null)
                 ds = CCTKHENTHUONGCollection.LayQuaTrinhKhenThuongTheoID_NHANVIEN(objNHANVIEN.ID_NHANVIEN);
            else
                ds = CCTKHENTHUONGCollection.LayQuaTrinhKhenThuongTheoID_NHANVIEN(-1);
            DataView dv = ds.Tables[0].DefaultView;
            gridEXKT.DataSource = dv;
        }

        public void FormatDataGridJanusKhenThuong()
        {
            //LoadDataGridJanusKhenThuong();

            //Set visible = false cho tat ca cac thuoc
            for (int i = 0; i < gridEXKT.RootTable.Columns.Count; i++)
            {
                gridEXKT.RootTable.Columns[i].Visible = false;
            }
            
            //Cac thuoc tinh chung
            gridEXKT.RootTable.Columns["NAMKT"].Visible = true;
            gridEXKT.RootTable.Columns["NAMKT"].Caption = "Tháng,Năm";
            gridEXKT.RootTable.Columns["NAMKT"].Width = 70;

            gridEXKT.RootTable.Columns["TEN_HTKT"].Visible = true;
            gridEXKT.RootTable.Columns["TEN_HTKT"].Caption = "Hình thức khen thưởng";
            gridEXKT.RootTable.Columns["TEN_HTKT"].Width = 280;

            gridEXKT.RootTable.Columns["LYDOKT"].Visible = true;
            gridEXKT.RootTable.Columns["LYDOKT"].Caption = "Lý do";
            gridEXKT.RootTable.Columns["LYDOKT"].Width = 390;

            //gridEXKT.RootTable.Columns["TEN_CAPQD"].Visible = true;
            gridEXKT.RootTable.Columns["TEN_CAPQD"].Caption = "Cấp quyết định";
            //gridEXKT.RootTable.Columns["TEN_CAPQD"].Width = 130;
        }

        private void gridEXKT_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXKT.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                frmKhenThuong frm = new frmKhenThuong(this.objNHANVIEN.ID_NHANVIEN, (int)row.Cells["id_ctkt"].Value);
                frm.ShowDialog();
                LoadDataGridJanusKhenThuong();
            }
        }

        private void btnCapnhatKT_Click(object sender, EventArgs e)
        {
            frmKhenThuong frm = new frmKhenThuong(this.objNHANVIEN.ID_NHANVIEN);
            frm.ShowDialog();
            LoadDataGridJanusKhenThuong();
        }

        private void btnXoaKT_Click(object sender, EventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXKT.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                if (MessageBox.Show("Bạn thật sự muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    if (CCTKHENTHUONGCollection.Delete((int)row.Cells[CCTKHENTHUONGCollection._params[0]].Value) > 0)
                    {
                        LoadDataGridJanusKhenThuong();
                        MessageBox.Show("Xóa thành công");
                    }
                    else
                        MessageBox.Show("Xóa không thành công");
                }
            }
        }
#endregion

#region "Tab 30) KY LUAT"
        public void InitDataGridJanusKyLuat()
        {
            LoadDataGridJanusKyLuat();

            //Style GridEX
            FormatStyleDataGridEX(ref gridEXKL);
            //group
            gridEXKL.RetrieveStructure();
            gridEXKL.RootTable.Groups.Add(new Janus.Windows.GridEX.GridEXGroup(gridEXKL.RootTable.Columns["TEN_CAPQD"]));
            gridEXKL.RootTable.GroupRowFormatStyle.ForeColor = Color.DarkBlue;
            gridEXKL.GroupByBoxVisible = false;

            FormatDataGridJanusKyLuat();
        }

        public void LoadDataGridJanusKyLuat()
        {
            DataSet ds;
            if (objNHANVIEN != null)
                ds = CCTKYLUATCollection.LayQuaTrinhKyLuatTheoID_NHANVIEN(objNHANVIEN.ID_NHANVIEN);
            else
                ds = CCTKYLUATCollection.LayQuaTrinhKyLuatTheoID_NHANVIEN(-1);
            DataView dv = ds.Tables[0].DefaultView;
            gridEXKL.DataSource = dv;
        }

        public void FormatDataGridJanusKyLuat()
        {
            //LoadDataGridJanusKyLuat();

            //Set visible = false cho tat ca cac thuoc
            for (int i = 0; i < gridEXKL.RootTable.Columns.Count; i++)
            {
                gridEXKL.RootTable.Columns[i].Visible = false;
            }

            //Cac thuoc tinh chung
            gridEXKL.RootTable.Columns["NAMKL"].Visible = true;
            gridEXKL.RootTable.Columns["NAMKL"].Caption = "Tháng,Năm";
            gridEXKL.RootTable.Columns["NAMKL"].Width = 70;

            gridEXKL.RootTable.Columns["TEN_HTKL"].Visible = true;
            gridEXKL.RootTable.Columns["TEN_HTKL"].Caption = "Hình thức kỷ luật";
            gridEXKL.RootTable.Columns["TEN_HTKL"].Width = 280;

            gridEXKL.RootTable.Columns["LYDOKL"].Visible = true;
            gridEXKL.RootTable.Columns["LYDOKL"].Caption = "Lý do";
            gridEXKL.RootTable.Columns["LYDOKL"].Width = 390;

            //Group
            gridEXKL.RootTable.Columns["TEN_CAPQD"].Caption = "Cấp quyết định";
            
        }

        private void gridEXKL_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXKL.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                frmKyLuat frm = new frmKyLuat(this.objNHANVIEN.ID_NHANVIEN, (int)row.Cells["id_ctkl"].Value);
                frm.ShowDialog();
                if(frm._isRefresh)
                LoadDataGridJanusKyLuat();
            }
        }

        private void btnThemKL_Click(object sender, EventArgs e)
        {
            frmKyLuat frm = new frmKyLuat(this.objNHANVIEN.ID_NHANVIEN);
            frm.ShowDialog();
            if (frm._isRefresh)
                LoadDataGridJanusKyLuat();
        }

        private void btnXoaKL_Click(object sender, EventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXKL.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                if (MessageBox.Show("Bạn thật sự muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    if (CCTKYLUATCollection.Delete((int)row.Cells[CCTKYLUATCollection._params[0]].Value) > 0)
                    {
                        LoadDataGridJanusKyLuat();
                        MessageBox.Show("Xóa thành công");
                    }
                    else
                        MessageBox.Show("Xóa không thành công");
                }
            }
        }
        #endregion

#region "Tab 29) QUA TRINH DAO TAO"
        public void InitDataGridJanusQTDT()
        {
            LoadDataGridJanusQTDT();

            //Style GridEX
            FormatStyleDataGridEX(ref gridEXQTDT);

            //group
            gridEXQTDT.RetrieveStructure();
            //gridEXQTDT.RootTable.Groups.Add(new Janus.Windows.GridEX.GridEXGroup(gridEXQTDT.RootTable.Columns["TEN_CAPQD"]));
            //gridEXQTDT.RootTable.GroupRowFormatStyle.ForeColor = Color.DarkBlue;
            gridEXQTDT.GroupByBoxVisible = false;

            FormatDataGridJanusQTDT();
        }

        public void LoadDataGridJanusQTDT()
        {
            DataSet ds;
            if (objNHANVIEN != null)
                ds = CCTQTDTCollection.LayQuaTrinhTheoID_NHANVIEN(objNHANVIEN.ID_NHANVIEN);
            else
                ds = CCTQTDTCollection.LayQuaTrinhTheoID_NHANVIEN(-1);
            DataView dv = ds.Tables[0].DefaultView;
            gridEXQTDT.DataSource = dv;
        }

        public void FormatDataGridJanusQTDT()
        {
            //LoadDataGridJanusQTDT();

            if (gridEXQTDT.RootTable == null)
                return;
            //Set visible = false cho tat ca cac thuoc
            for (int i = 0; i < gridEXQTDT.RootTable.Columns.Count; i++)
            {
                gridEXQTDT.RootTable.Columns[i].Visible = false;
            }

            //Cac thuoc tinh chung
            gridEXQTDT.RootTable.Columns["TRUONG"].Visible = true;
            gridEXQTDT.RootTable.Columns["TRUONG"].Caption = "Tên Trường";
            gridEXQTDT.RootTable.Columns["TRUONG"].Width = 125;

            gridEXQTDT.RootTable.Columns["CHUYENNGANH"].Visible = true;
            gridEXQTDT.RootTable.Columns["CHUYENNGANH"].Caption = "Ngành học hoặc tên lớp học";
            gridEXQTDT.RootTable.Columns["CHUYENNGANH"].Width = 260;

            gridEXQTDT.RootTable.Columns["TUNAM"].Visible = true;
            gridEXQTDT.RootTable.Columns["TUNAM"].Caption = "Từ tháng/năm";
            gridEXQTDT.RootTable.Columns["TUNAM"].Width = 80;

            gridEXQTDT.RootTable.Columns["DENNAM"].Visible = true;
            gridEXQTDT.RootTable.Columns["DENNAM"].Caption = "Đến tháng/năm";
            gridEXQTDT.RootTable.Columns["DENNAM"].Width = 85;

            gridEXQTDT.RootTable.Columns["HDT"].Visible = true;
            gridEXQTDT.RootTable.Columns["HDT"].Caption = "Hình thức học";
            gridEXQTDT.RootTable.Columns["HDT"].Width = 90;

            gridEXQTDT.RootTable.Columns["VANBANG"].Visible = true;
            gridEXQTDT.RootTable.Columns["VANBANG"].Caption = "Văn bằng, chứng chỉ";
            gridEXQTDT.RootTable.Columns["VANBANG"].Width = 110;
        }

        private void gridEXQTDT_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQTDT.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                frmQTDT frm = new frmQTDT(this.objNHANVIEN.ID_NHANVIEN, (int)row.Cells["id_ctqtdt"].Value);
                frm.ShowDialog();
                if (frm._isRefresh)
                    LoadDataGridJanusQTDT();
            }
        }

        private void btnThemQTDT_Click(object sender, EventArgs e)
        {
            frmQTDT frm = new frmQTDT(this.objNHANVIEN.ID_NHANVIEN);
            frm.ShowDialog();
            if (frm._isRefresh)
                LoadDataGridJanusQTDT();
        }

        private void btnXoaQTDT_Click(object sender, EventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQTDT.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                if (MessageBox.Show("Bạn thật sự muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    if (CCTQTDTCollection.Delete((int)row.Cells[CCTQTDTCollection._params[0]].Value) > 0)
                    {
                        LoadDataGridJanusQTDT();
                        MessageBox.Show("Xóa thành công");
                    }
                    else
                        MessageBox.Show("Xóa không thành công");
                }
            }
        }
        #endregion

#region "Tab 38) QUAN HE GIA DINH"
        public void InitDataGridJanusQHGD(ref Janus.Windows.GridEX.GridEX gridEXQHGD)
        {
            //GridEXQHGD
            LoadDataGridJanusQHGD(ref gridEXQHGD);

            //Style GridEXQHGD
            FormatStyleDataGridEX(ref gridEXQHGD);

            //group gridEXQHGD
            gridEXQHGD.RetrieveStructure();
            gridEXQHGD.RootTable.Groups.Add(new Janus.Windows.GridEX.GridEXGroup(gridEXQHGD.RootTable.Columns["QUANHE"]));
            gridEXQHGD.RootTable.GroupRowFormatStyle.ForeColor = Color.DarkBlue;
            gridEXQHGD.RootTable.SortKeys.Add(new Janus.Windows.GridEX.GridEXSortKey(gridEXQHGD.RootTable.Columns["ID_QHGD"], Janus.Windows.GridEX.SortOrder.Ascending));
            gridEXQHGD.RootTable.SortKeys.Add(new Janus.Windows.GridEX.GridEXSortKey(gridEXQHGD.RootTable.Columns["ID_CTQHGD"], Janus.Windows.GridEX.SortOrder.Ascending));

            gridEXQHGD.GroupByBoxVisible = false;

            FormatDataGridJanusQHGD(ref gridEXQHGD);
        }

        public void LoadDataGridJanusQHGD(ref Janus.Windows.GridEX.GridEX gridEX)
        {
            DataSet ds;
            if (objNHANVIEN != null)
                ds = CCTQHGDCollection.LayQuaTrinhTheoID_NHANVIEN(objNHANVIEN.ID_NHANVIEN);
            else
                ds = CCTQHGDCollection.LayQuaTrinhTheoID_NHANVIEN(-1);
            DataView dv = ds.Tables[0].DefaultView;
            //Neu la gridEXQHGD1 tuc la grid thuoc ban than
            //Nguoc lai la ben vo (hoac chong)
            if (gridEX == gridEXQHGD1)
                dv.RowFilter = "THUOCBANTHAN = true";
            else
                dv.RowFilter = "THUOCBANTHAN = false";
            gridEX.DataSource = dv;
        }


        public void FormatDataGridJanusQHGD(ref Janus.Windows.GridEX.GridEX gridEXQHGD)
        {
            //LoadDataGridJanusQTDT();

            if (gridEXQHGD.RootTable == null)
                return;
            //Set visible = false cho tat ca cac thuoc
            for (int i = 0; i < gridEXQHGD.RootTable.Columns.Count; i++)
            {
                gridEXQHGD.RootTable.Columns[i].Visible = false;
            }

            //Cac thuoc tinh chung
            gridEXQHGD.RootTable.Columns["HOTEN"].Visible = true;
            gridEXQHGD.RootTable.Columns["HOTEN"].Caption = "Họ và tên";
            gridEXQHGD.RootTable.Columns["HOTEN"].Width = 110;

            gridEXQHGD.RootTable.Columns["NAMSINH"].Visible = true;
            gridEXQHGD.RootTable.Columns["NAMSINH"].Caption = "Năm sinh";
            gridEXQHGD.RootTable.Columns["NAMSINH"].Width = 70;

            gridEXQHGD.RootTable.Columns["NOIDUNG"].Visible = true;
            gridEXQHGD.RootTable.Columns["NOIDUNG"].Caption = "Quê quán, nghề nghiệp, chức danh, chức vụ, đơn vị công tác, học tập, ...";
            gridEXQHGD.RootTable.Columns["NOIDUNG"].Width = 550;

            //group
            gridEXQHGD.RootTable.Columns["QUANHE"].Caption = "Mối quan hệ: ";

        }

        private void gridEXQHGD1_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQHGD1.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                frmQHGiaDinh frm = new frmQHGiaDinh(this.objNHANVIEN.ID_NHANVIEN, (int)row.Cells["id_ctqhgd"].Value, ref gridEXQHGD1);
                frm.ShowDialog();
                if (frm._isRefresh)
                    LoadDataGridJanusQHGD(ref gridEXQHGD1);
            }
        }

        private void gridEXQHGD2_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQHGD2.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                frmQHGiaDinh frm = new frmQHGiaDinh(this.objNHANVIEN.ID_NHANVIEN, (int)row.Cells["id_ctqhgd"].Value, ref gridEXQHGD2);
                frm.ShowDialog();
                if (frm._isRefresh)
                    LoadDataGridJanusQHGD(ref gridEXQHGD2);
            }
        }

        private void btnThemQHGD1_Click(object sender, EventArgs e)
        {
            frmQHGiaDinh frm = new frmQHGiaDinh(this.objNHANVIEN.ID_NHANVIEN, true, ref gridEXQHGD1);
            frm.ShowDialog();
            if (frm._isRefresh)
                LoadDataGridJanusQHGD(ref gridEXQHGD1);
        }

        private void btnXoaQHGD1_Click(object sender, EventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQHGD1.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                if (MessageBox.Show("Bạn thật sự muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    if (CCTQHGDCollection.Delete((int)row.Cells[CCTQHGDCollection._params[0]].Value) > 0)
                    {
                        LoadDataGridJanusQHGD(ref gridEXQHGD1);
                        MessageBox.Show("Xóa thành công");
                    }
                    else
                        MessageBox.Show("Xóa không thành công");
                }
            }
        }

        private void btnThemQHGD2_Click(object sender, EventArgs e)
        {
            frmQHGiaDinh frm = new frmQHGiaDinh(this.objNHANVIEN.ID_NHANVIEN, false, ref gridEXQHGD2);
            frm.ShowDialog();
            if (frm._isRefresh)
                LoadDataGridJanusQHGD(ref gridEXQHGD2);
        }

        private void btnXoaQHGD2_Click(object sender, EventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQHGD2.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                if (MessageBox.Show("Bạn thật sự muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    if (CCTQHGDCollection.Delete((int)row.Cells[CCTQHGDCollection._params[0]].Value) > 0)
                    {
                        LoadDataGridJanusQHGD(ref gridEXQHGD2);
                        MessageBox.Show("Xóa thành công");
                    }
                    else
                        MessageBox.Show("Xóa không thành công");
                }
            }
        }
        #endregion

#region "Tab 35) QUA TRINH CONG TAC"
        public void InitDataGridJanusQTCT()
        {
            LoadDataGridJanusQTCT();

            //Style GridEX
            FormatStyleDataGridEX(ref gridEXQTCT);

            //group
            gridEXQTCT.RetrieveStructure();
            //gridEXQTCT.RootTable.Groups.Add(new Janus.Windows.GridEX.GridEXGroup(gridEXQTCT.RootTable.Columns["TEN_CAPQD"]));
            //gridEXQTCT.RootTable.GroupRowFormatStyle.ForeColor = Color.DarkBlue;
            gridEXQTCT.GroupByBoxVisible = false;

            FormatDataGridJanusQTCT();
        }

        public void LoadDataGridJanusQTCT()
        {
            DataSet ds;
            if (objNHANVIEN != null)
                ds = CCTQTCTCollection.LayQuaTrinhTheoID_NHANVIEN(objNHANVIEN.ID_NHANVIEN);
            else
                ds = CCTQTCTCollection.LayQuaTrinhTheoID_NHANVIEN(-1);
            DataView dv = ds.Tables[0].DefaultView;
            gridEXQTCT.DataSource = dv;

        }

        public void FormatDataGridJanusQTCT()
        {
            //Neu chưa có dữ liệu thì chưa format grid
            if (gridEXQTCT.RootTable == null)
                return;

            //Set visible = false cho tat ca cac thuoc
            for (int i = 0; i < gridEXQTCT.RootTable.Columns.Count; i++)
            {
                gridEXQTCT.RootTable.Columns[i].Visible = false;
            }

            //Cac thuoc tinh chung
            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[2]].Visible = true;
            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[2]].Caption = "Từ tháng/năm";
            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[2]].Width = 80;

            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[3]].Visible = true;
            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[3]].Caption = "Đến tháng/năm";
            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[3]].Width = 85;

            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[4]].Visible = true;
            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[4]].Caption = "Chức danh, chức vụ, đơn vị công tác (Đảng, Chính quyền, Đoàn thể)";
            gridEXQTCT.RootTable.Columns[CCTQTCTCollection._params[4]].Width = 590;
        }

        private void gridEXQTCT_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQTCT.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                frmQTCT frm = new frmQTCT(this.objNHANVIEN.ID_NHANVIEN, (int)row.Cells[CCTQTCTCollection._params[0]].Value);
                frm.ShowDialog();
                if (frm._isRefresh)
                    LoadDataGridJanusQTCT();
            }   
        }

        private void btnThemQTCT_Click(object sender, EventArgs e)
        {
            frmQTCT frm = new frmQTCT(this.objNHANVIEN.ID_NHANVIEN);
            frm.ShowDialog();
            if (frm._isRefresh)
                LoadDataGridJanusQTCT();
        }

        private void btnXoaQTCT_Click(object sender, EventArgs e)
        {
            Janus.Windows.GridEX.GridEXRow row = gridEXQTCT.GetRow();
            //Neu RowType la record thi moi tiep tuc
            if (row.RowType == Janus.Windows.GridEX.RowType.Record)
            {
                if (MessageBox.Show("Bạn thật sự muốn xóa?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    if (CCTQTCTCollection.Delete((int)row.Cells[CCTQTCTCollection._params[0]].Value) > 0)
                    {
                        LoadDataGridJanusQTCT();
                        MessageBox.Show("Xóa thành công");
                    }
                    else
                        MessageBox.Show("Xóa không thành công");
                }
            }
        }

        #endregion

        

        

       

       
       

       

       

       

        

       

        

       

       
    }
}